package com.fowo.api.model.supplier.task.instance;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import com.fowo.api.common.excel.ImageConvert;
import com.fowo.api.sys.entity.SysFile;
import java.util.List;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/** 供应商产品开发实施 导入导出辅助模型 */
@Getter
@Setter
public class SupplierTaskInstanceExcelPo {

  @NotNull(message = "开发编号不能为空")
  @Size(max = 50, message = "开发编号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*开发编号")
  private String taskIdTaskId;

  @ExcelIgnore
  @ExcelProperty(value = "*开发编号")
  private Long taskId;

  @NotNull(message = "任务编号不能为空")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*任务编号")
  private String instanceId;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "产品")
  private String productIdName;

  @ExcelIgnore
  @ExcelProperty(value = "产品")
  private List<Long> productId;

  @NotNull(message = "开发时间不能为空")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "*开发时间")
  private java.util.Date doTime;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "截止时间")
  private java.util.Date endTime;

  @Size(max = 50, message = "企业代码长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "企业代码")
  private String supplierCode;

  @Size(max = 50, message = "企业简称长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "企业简称")
  private String supplierName;

  @Size(max = 50, message = "企业名称长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "企业名称")
  private String supplierFullName;

  @NotBlank(message = "供应商分类不能为空")
  @Size(max = 50, message = "供应商分类长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*供应商分类")
  private String type;

  @Size(max = 50, message = "社会信用代码长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "社会信用代码")
  private String creditCode;

  @Size(max = 50, message = "规模长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "规模")
  private String scale;

  @Size(max = 50, message = "联系人长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "联系人")
  private String contacts;

  @Size(max = 50, message = "联系人手机号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "联系人手机号")
  private String contactsPhone;

  @Size(max = 50, message = "QQ/微信长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "QQ/微信")
  private String qqWx;

  @Size(max = 50, message = "邮箱长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "邮箱")
  private String email;

  @Size(max = 50, message = "网址长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "网址")
  private String webAddress;

  @Size(max = 50, message = "省长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "省")
  private String province;

  @Size(max = 50, message = "市长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "市")
  private String city;

  @Size(max = 50, message = "地区长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "地区")
  private String region;

  @NotBlank(message = "状态不能为空")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*状态")
  private String status;

  @ExcelProperty(value = "附件", converter = ImageConvert.class)
  private List<SysFile> file;

  @ExcelProperty(value = "工牌胸卡", converter = ImageConvert.class)
  private List<SysFile> workBadge;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "转交人")
  private String forwardUserName;

  @ExcelIgnore
  @ExcelProperty(value = "转交人")
  private Long forwardUser;

  @ExcelProperty(value = "综合评分")
  private java.math.BigDecimal systemReviewScoring;
}
